home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
kowin
/
font
/
fonted31.lzh
/
fed3func.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-01-29
|
8KB
|
346 lines
/*/ ******************************************************************* /*/
/*/ /*/
/*/ FONTED3.win version 1 小笠原博之 SPS0783 COR. /*/
/*/ /*/
/*/ ******************************************************************* /*/
#include <stdio.h>
#include <wlib.h>
#include <parts.h>
#include "fed3const.h"
#include "fonted3.h"
extern DrawBuf dbuf_2[];
#define Draw_EditScreen( aa, bb ) WindowDraw( bb, dbuf_2, 2 )
struct FedFunc swmode[]={
"All Clr ", fed3allclr,
" ", fed3nop,
"Roll←┐", fed3rollL,
" ←→ ", fed3revH,
"Reverse ", fed3reverse,
"Sft <<", fed3shiftL,
"Sft ∧∧", fed3shiftU,
"Area CLR", fed3areaclr,
"Area MOV", fed3areamov,
"Area←→", fed3arearevH,
" ", fed3nop,
" SEND ", send_font,
"Clr undo", fed3clrundo,
" ", fed3nop,
"Roll┌→", fed3rollR,
" ↑↓ ", fed3revV,
" ", fed3nop,
"Sft >>", fed3shiftR,
"Sft ∨∨", fed3shiftD,
"Area REV", fed3arearev,
"Area CPY", fed3areacpy,
"Area↑↓", fed3arearevV,
" ", fed3nop,
" SAVE ", savefont
};
static unsigned short BakBuf[EDITSIZEY];
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
画面消去
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3allclr( wp )
WindowID wp;
{
int i;
for( i=0 ; i<EDITSIZEY ; i++ )
BakBuf[i]= ImgBuf[i];
Init_EditScreen();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
画面消去の復活
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3clrundo( wp )
WindowID wp;
{
int i;
unsigned a;
for( i=0 ; i<EDITSIZEY ; i++ ){
a= BakBuf[i];
BakBuf[i]= ImgBuf[i];
ImgBuf[i]= a;
}
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
左回転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3rollL( wp )
WindowID wp;
{
int x,
y,
i;
unsigned short buf[EDITSIZEY];
for( i=0 ; i<EDITSIZEY ; i++ )
buf[i]= ImgBuf[i];
for( y=0 ; y<EDITSIZEY ; y++ ){
for( i= buf[y], x=0 ; x<EDITSIZEX ; x++, i<<=1 ){
Pset_EditScreen( y, 15-x, !(i & 32768), 0, wp );
}
}
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
右回転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3rollR( wp )
WindowID wp;
{
int x,
y,
i;
unsigned short buf[EDITSIZEY];
for( i=0 ; i<EDITSIZEY ; i++ )
buf[i]= ImgBuf[i];
for( y=0 ; y<EDITSIZEY ; y++ ){
for( i= buf[y], x=0 ; x<EDITSIZEX ; x++, i<<=1 ){
Pset_EditScreen( 15-y, x, !(i & 32768), FALSE, wp );
}
}
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
ダミー
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3nop( wp )
WindowID wp;
{
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
画面反転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3reverse( wp )
WindowID wp;
{
revall( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
シフト左
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3shiftL( wp )
WindowID wp;
{
shiftL( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
シフト右
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3shiftR( wp )
WindowID wp;
{
shiftR( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
シフト上
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3shiftU( wp )
WindowID wp;
{
shiftU( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
シフト下
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3shiftD( wp )
WindowID wp;
{
shiftD( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分消去
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3areaclr( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect1( &area, wp ) ){
int x,
y;
for( y= area.y1 ; y<= area.y2 ; y++ ){
for( x= area.x1 ; x<= area.x2 ; x++ ){
Pset_EditScreen( x, y, 0, TRUE, wp );
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分反転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3arearev( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect1( &area, wp ) ){
int x,
y;
for( y= area.y1 ; y<= area.y2 ; y++ ){
for( x= area.x1 ; x<= area.x2 ; x++ ){
Pset_EditScreen( x, y, ( ImgBuf[y] & ( 32768 >> x ) )!=0, TRUE, wp );
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分逆転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3arearevH( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect1( &area, wp ) ){
int y;
for( y= area.y1 ; y<= area.y2 ; y++ ){
int x;
for( x= area.x1 ; x<= (area.x2+area.x1)/2 ; x++ ){
int a= !(ImgBuf[y] & (32768>>x) ),
b= !(ImgBuf[y] & (32768>> (area.x2+area.x1-x) ) );
Pset_EditScreen( x, y, b, TRUE, wp );
Pset_EditScreen( area.x2+area.x1-x, y, a, TRUE, wp );
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分逆転縦
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3arearevV( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect1( &area, wp ) ){
int y;
for( y= area.y1 ; y<= (area.y2+area.y1)/2 ; y++ ){
int x;
for( x= area.x1 ; x<= area.x2 ; x++ ){
int a= !(ImgBuf[y] & (32768>>x) ),
b= !(ImgBuf[area.y2+area.y1-y] & (32768>>x) );
Pset_EditScreen( x, y, b, TRUE, wp );
Pset_EditScreen( x, area.y2+area.y1-y, a, TRUE, wp );
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分移動
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3areamov( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect2( &area, wp, "移動先?" ) ){
int x,
y;
int xx,
yy;
if( (area.y1 > area.sy) || (area.y1 == area.sy && area.x1 > area.sx) ){
for( yy= area.sy, y= area.y1 ; y<= area.y2 ; y++, yy++ ){
for( xx= area.sx, x= area.x1 ; x<= area.x2 ; x++, xx++ ){
int a= !(ImgBuf[y] & (32768 >> x) );
Pset_EditScreen( x, y, 0, TRUE, wp );
if( xx>=0 && xx<EDITSIZEX && yy>=0 && yy<EDITSIZEY )
Pset_EditScreen( xx, yy, a, TRUE, wp );
}
}
}else{
for( yy= area.sy+(area.y2-area.y1), y= area.y2 ; y>= area.y1 ; y--, yy-- ){
for( xx= area.sx+(area.x2-area.x1), x= area.x2 ; x>= area.x1 ; x--, xx-- ){
int a= !(ImgBuf[y] & (32768 >> x) );
Pset_EditScreen( x, y, 0, TRUE, wp );
if( xx>=0 && xx<EDITSIZEX && yy>=0 && yy<EDITSIZEY )
Pset_EditScreen( xx, yy, a, TRUE, wp );
}
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
部分複写
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3areacpy( wp )
WindowID wp;
{
struct Area area;
if( AreaSelect2( &area, wp, "複写先?" ) ){
int x,
y;
int xx,
yy;
if( (area.y1 > area.sy) || (area.y1 == area.sy && area.x1 > area.sx) ){
for( yy= area.sy, y= area.y1 ; y<= area.y2 ; y++, yy++ ){
for( xx= area.sx, x= area.x1 ; x<= area.x2 ; x++, xx++ ){
if( xx>=0 && xx<EDITSIZEX && yy>=0 && yy<EDITSIZEY )
Pset_EditScreen( xx, yy, !( ImgBuf[y] & ( 32768 >> x ) ), TRUE, wp );
}
}
}else{
for( yy= area.sy+(area.y2-area.y1), y= area.y2 ; y>= area.y1 ; y--, yy-- ){
for( xx= area.sx+(area.x2-area.x1), x= area.x2 ; x>= area.x1 ; x--, xx-- ){
if( xx>=0 && xx<EDITSIZEX && yy>=0 && yy<EDITSIZEY )
Pset_EditScreen( xx, yy, !( ImgBuf[y] & ( 32768 >> x ) ), TRUE, wp );
}
}
}
}
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
左右反転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3revH( wp )
WindowID wp;
{
revH( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
上下反転
/*//*//*//*//*//*//*//*//*//*//*//*//*//*//*/
fed3revV( wp )
WindowID wp;
{
revV( ImgBuf );
ImgtoEdit();
Draw_EditScreen( 0, wp );
}